インスタンスメタデータへの通信を行う際にセキュリティグループでの許可は必要ですか?
困っていること
セキュリティの要件が厳しいため、セキュリティグループのアウトバウンドルールで特定の IP アドレス以外の通信をしないような設計が必要です。
設計中における調査にて、EC2 からインスタンスメタデータを取得するために 169.254.169.254 への通信が必要との記載がありました。
インスタンスメタデータへの通信を行う際に、セキュリティグループのアウトバウンドルールでの許可は必要であるかを確認したいです。
どう解決すればいいの?
インスタンスメタデータへの通信を行う際にセキュリティグループでの許可は不要です。
その他、下記宛先のトラフィックはセキュリティグループではフィルターされません。
- Amazon ドメインネームサービス (DNS)
- VPC の CIDR に2をプラスした値(例:10.0.0.0/16 → 10.0.0.2, 172.31.0.0/16 → 172.31.0.2)
- 169.254.169.253
- Amazon Dynamic Host Configuration Protocol (DHCP)
- サブネットの CIDR に 1 をプラスした値(例:172.31.32.0/20 → 172.31.32.1)
- Amazon EC2 インスタンスメタデータ
- 169.254.169.254
- Amazon ECS タスクメタデータエンドポイント
- 169.254.170.2
- Windows インスタンスのライセンスアクティベーション
- 169.254.169.250
- Amazon Time Sync Service
- 169.254.169.123
おまけ
CIDR 範囲 172.31.32.0/20 のサブネットに EC2(Amazon Linux 2) を起動した際の、dhclient--eth0.lease
を調べてみました。
なお、172.31.44.38
は EC2 のプライベート IP です。
$ cat dhclient--eth0.lease lease { interface "eth0"; fixed-address 172.31.44.38; option subnet-mask 255.255.240.0; option routers 172.31.32.1; option dhcp-lease-time 3600; option dhcp-message-type 5; option domain-name-servers 172.31.0.2; option dhcp-server-identifier 172.31.32.1; option interface-mtu 9001; option broadcast-address 172.31.47.255; option host-name "ip-172-31-44-38"; option domain-name "ap-northeast-1.compute.internal"; renew 3 2024/01/17 03:07:35; rebind 3 2024/01/17 03:33:40; expire 3 2024/01/17 03:41:10; }
option dhcp-server-identifier
がサブネットの CIDR に 1 をプラスした値になっていました。
/var/log/messages にも、172.31.32.1 から DHCPACK が送られているログがありました。
/var/log/messages
Jan 17 02:41:10 ip-172-31-44-38 dhclient[1999]: DHCPACK from 172.31.32.1 (xid=0x6ebde855)
参考資料
セキュリティグループを使用して AWS リソースへのトラフィックを制御する - Amazon Virtual Private Cloud
VPCデフォルトのDNSサーバへの通信はSecurity GroupのOutboundルールで制御できないことを確認してみた | DevelopersIO
タスクメタデータエンドポイントバージョン 2 - Amazon Elastic Container Service
Amazon EC2 Windows インスタンスでの Windows アクティベーションの失敗を解決する | AWS re:Post